package com;

import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.Date;
import java.util.SortedSet;
import java.util.TreeSet;

/**
 * set 特性 : 无序 不可重复添加,添加顺序和取出顺序不一致(也可能一致)
 * 
 * TreeSet 是 SortedSet的唯一实现类,保存的元素可以按照某种规则自动排序
 * 
 * 		数组 : 从大到小
 * 		日期 : 自然日期(昨天,今天,明天)
 * 		字符串 : 每一位的ASCII码值
 * 
 * 比较器有两种 : 元素比较器和集合比较器,如果两个比较器都存在,优先使用集合比较器
 * 
 * TreeSet 中元素类型必须统一,因为要比较排序,如果类型不一致,没可比性,怎么排序
 * 
 * @author lenovo
 * @Date 2020年7月16日
 * @Time 下午9:07:14
 */
public class Collection_09_SortedSet_01 {

	public static void main(String[] args) throws ParseException {
		SortedSet ss = new TreeSet();
		ss.add(1);
		ss.add(22);
		ss.add(2);
		System.out.println(ss);
		// [1, 2, 22]
		ss = new TreeSet();
		ss.add("abc");
		ss.add("abd");
		ss.add("ba");
		ss.add("ac");
		System.out.println(ss);
		// [abc, abd, ac, ba]

		ss = new TreeSet();
		String st1 = "2008-08-08";
		String st2 = "2008-08-07";
		String st3 = "2008-09-01";
		String st4 = "2007-09-01";
		SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");
		Date d1 = sdf.parse(st1);
		Date d2 = sdf.parse(st2);
		Date d3 = sdf.parse(st3);
		Date d4 = sdf.parse(st4);
		ss.add(d1);
		ss.add(d2);
		ss.add(d3);
		ss.add(d4);
		for (Object object : ss) {
			Date date = (Date) object;
			System.out.println(sdf.format(date));
		}
//		2007-09-01
//		2008-08-07
//		2008-08-08
//		2008-09-01

	}

}
